perm filename CORMON[SS,SYS]1 blob
sn#360562 filedate 1978-06-09 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE CORMON
C00008 ENDMK
C⊗;
TITLE CORMON
;CORTAB ENTRY VALUES
; 0 Block is available.
; 1-77 Block is in use by the job named in this code
; 101 Block is occupied bt the system
; 103 Block does not exist (NXM)
; 105 Block is in use by system as free storage.
; 107 Block is in use as an I/O buffer (SYSBUF for example)
; 110 Block is in use as a page table (not as free storage)
PHYMEM←←4000 ;TOTAL NUMBER OF PHYSICAL PAGES IN SYSTEM
NNXMP←←400 ;TOTAL NUMBER OF NXM PAGES IN SYSTEM
NMAPP←←=63 ;TOTAL NUMBER OF MAP PAGES IN SYSTEM
A←1
B←2
C←3
D←4
E←5
M←6
N←7
T←10
TT←11
TTT←12
W←13
X←14
Y←15
Z←16
P←17
GO: RESET
MOVE P,[-100,,PDL-1]
MOVSI A,377777
SETPR2 A,
JRST 4,.
PUSHJ P,SYMGET
MOVE A,@AFSBUSY
MOVEM A,FSBUSY
MOVE A,@ASYSTOP
MOVEM A,SYSTOP
MOVE A,@AFSTOP
MOVEM A,FSTOP
MOVE A,@ACORMAX
MOVEM A,CORMAX
MOVS A,ACORTAB
HRRI A,CORTAB
BLT A,CORTAB+PHYMEM-1 ;COPY CORTAB TABLE
OUTSTR [ASCIZ /FSBUSY = /]
MOVE T,FSBUSY
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
SYSTOP = /]
MOVE T,SYSTOP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
FSTOP-SYSTOP = /]
MOVE T,FSTOP
SUB T,SYSTOP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Number of SYSBUF pages = /]
MOVE T,NSYPGS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Available user core should be = /]
MOVEI T,PHYMEM ;TOTAL NUMBER OF PAGES IN SYSTEM
MOVE TT,FSTOP
LSH TT,-9
SUB T,TT
SUB T,NSYPGS
SUBI T,NNXMP+NMAPP ;SUBTRACT OUT NXM PAGES AND PAGE MAP PAGES
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
CORMAX = /]
MOVE T,CORMAX
LSH T,-9
PUSHJ P,DECOUT
SETZM FREE
SETZM SYS
SETZM USER
SETZM NXM
SETZM FS
SETZM IO
SETZM MAP
MOVSI T,-PHYMEM
CORTB1: LDB A,[POINT 9,CORTAB(T),26]
SKIPN A
AOS FREE
CAIN A,101
AOS SYS
CAILE A,0
CAIL A,100
CAIA
AOS USER
CAIN A,103
AOS NXM
CAIN A,105
AOS FS
CAIN A,107
AOS IO
CAIN A,110
AOS MAP
AOBJN T,CORTB1
OUTSTR [ASCIZ /
System pages = /]
MOVE T,SYS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
FS pages = /]
MOVE T,FS
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
NXM pages = /]
MOVE T,NXM
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
MAP pages = /]
MOVE T,MAP
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
IO buffer pages = /]
MOVE T,IO
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Free pages = /]
MOVE T,FREE
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
User pages = /]
MOVE T,USER
PUSHJ P,DECOUT
OUTSTR [ASCIZ /
Total pages = /]
MOVE T,FREE
ADD T,SYS
ADD T,MAP
ADD T,FS
ADD T,NXM
ADD T,IO
ADD T,USER
PUSH P,T
PUSHJ P,DECOUT
POP P,T
OUTSTR [ASCIZ / = /]
LSH T,9
PUSHJ P,DECOUT
OUTSTR [BYTE (7)15,12]
EXIT
DECOUT: PUSHJ P,DECOU0
OUTCHR ["."]
POPJ P,
DECOU0: IDIVI T,=10
JUMPE T,DECOU1
HRLM TT,(P)
PUSHJ P,DECOU0
HLRZ TT,(P)
DECOU1: ADDI TT,"0"
OUTCHR TT
POPJ P,
SYMGET: MOVSI T,-NSYMS
SYMGT1: MOVE B,SYMNAM(T)
TLZ B,740000
MOVEI C,0
MOVEI A,B
.SYML A,
JRST 4,.
MOVE B,SYMNAM(T)
TLNN B,40000
ADDI A,400000
MOVEM A,SYMADR(T)
AOBJN T,SYMGT1
POPJ P,
SYMNAM: RADIX50 0,FSBUSY
RADIX50 0,SYSTOP
RADIX50 0,FSTOP
RADIX50 0,CORMAX
RADIX50 4,NSYPGS
RADIX50 0,CORTAB
NSYMS←←.-SYMNAM
SYMADR::
AFSBUSY:0
ASYSTOP:0
AFSTOP: 0
ACORMAX:0
NSYPGS: 0
ACORTAB:0
FSBUSY: 0
SYSTOP: 0
FSTOP: 0
CORMAX: 0
CORTAB: BLOCK PHYMEM
PDL: BLOCK 100
FREE: 0
SYS: 0
USER: 0
NXM: 0
FS: 0
IO: 0
MAP: 0
END GO